// @Title  gorm配置
// @Description  请填写文件描述（需要改）
// @Author  请填写自己的真是姓名（需要改）  2021/6/30 12:24
// @Update  请填写自己的真是姓名（需要改）  2021/6/30 12:24
package configs

import (
	"fmt"
)

type OrmConfig struct {
	DbIp           string `mapstructure:"db-ip" json:"dbIp" yaml:"db-ip"`
	DbPort         int    `mapstructure:"db-port" json:"dbPort" yaml:"db-port"`
	Dbname         string `mapstructure:"db-name" json:"dbname" yaml:"db-name"`                         // 数据库名
	Username       string `mapstructure:"username" json:"username" yaml:"username"`                     // 数据库用户名
	Password       string `mapstructure:"password" json:"password" yaml:"password"`                     // 数据库密码
	MaxIdleConns   int    `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"`     // 空闲中的最大连接数
	MaxOpenConns   int    `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"`     // 打开到数据库的最大连接数
	ConnectTimeout int    `mapstructure:"connect-timeout" json:"connectTimeout" yaml:"connect-timeout"` // 连接超时时间(秒)
	ShowSql        bool   `mapstructure:"show-sql" json:"showSql" yaml:"show-sql"`
}

func (m *OrmConfig) MysqlDsn() string {
	return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local&timeout=%ds", m.Username, m.Password, m.DbIp, m.DbPort, m.Dbname, m.ConnectTimeout)
}
